package com.itheima.copydemo1;

import java.io.*;

public class Test3 {

    public static void main(String[] args) {

        //使用字节流完成文件复制操作（任何文件的底层都是字节）
        //源文件：D:\\a.txt
        //目标文件：D:\\a_new.txt（复制过去时一定要带文件名）

        //JDK 7 提供了更简单的资源释放方案：try-with-resources

        copyFile("D:\\a.txt", "D:\\a_new.txt");


    }

    public static void copyFile(String srcPath, String destPath) {

        try (//这里只能放置资源对象，用完后，会自动关调用其close方法关闭
             //资源一般指的是最终实现了AutoCloseable接口的类对象
             InputStream fis = new FileInputStream(srcPath);
             OutputStream fos = new FileOutputStream(destPath);
             MyCoon coon = new MyCoon();    //自定义的资源对象
        ) {

            //3.将输入流中的字节，按照一定的规律，写入到输出流中
            byte[] buffer = new byte[1024];
            int len;
            while ((len = fis.read(buffer)) != -1) {
                fos.write(buffer, 0, len);      //读取多少字节，就写入多少字节
            }
            System.out.println("复制成功！");

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

class MyCoon implements Closeable {
    @Override
    public void close() throws IOException {
        System.out.println("关闭资源");
    }
}
